Chrome 138 베타

게시일: 2025년 5월 28일

별도로 명시되지 않는 한 다음 변경사항은 Android, ChromeOS, Linux, macOS, Windows용 최신 Chrome 베타 채널 출시에 적용됩니다. 제공된 링크 또는 ChromeStatus.com의 목록에서 여기에 나열된 기능에 대해 자세히 알아보세요. Chrome 138은 2025년 5월 28일 현재 베타 버전입니다. 데스크톱의 Google.com 또는 Android의 Google Play 스토어에서 최신 버전을 다운로드할 수 있습니다.

CSS 및 UI

이 출시에서는 새로운 CSS 및 UI 기능 6개가 추가되었습니다.

CSS stretch 크기 키워드

요소가 포함된 블록의 사용 가능한 공간을 정확하게 채우도록 크기를 조절할 수 있는 CSS 크기 속성의 키워드 (예: width, height)입니다. 100%와 유사하지만 결과 크기가 box-sizing로 표시된 상자 대신 요소의 여백 상자에 적용된다는 점이 다릅니다. 이 키워드를 사용하면 요소가 최대한 커지면서 여백을 유지할 수 있습니다.

부호 관련 함수 abs()sign()는 인수의 부호와 관련된 다양한 함수를 계산합니다.

OS 수준 글꼴 크기의 CSS 환경 변수

사용자의 선호하는 글꼴 크기를 CSS에 노출합니다. 현재 페이지에서 사용자가 운영체제의 환경설정에서 기본 글꼴 크기를 변경했는지 감지하는 것은 실용적이지 않습니다. 이 CSS 환경 변수는 사용자가 선택한 크기를 반영합니다.

CSS sibling-index()sibling-count()

sibling-index()sibling-count() 함수는 CSS 속성 값에서 정수로 사용하여 요소의 형제 중 위치 또는 형제의 총 개수를 각각 기준으로 요소의 스타일을 지정할 수 있습니다. 이러한 함수는 정수 값으로 직접 사용할 수 있지만, 더 흥미로운 점은 calc() 표현식 내에서 사용할 수 있다는 것입니다.

li {
  animation-delay: calc(0.1s * sibling-index());
}

보간 진행률 함수 표기법: CSS progress() 함수

progress() 함수 표기는 다른 두 계산 (진행률 시작 값 및 진행률 종료 값) 사이에서 한 계산의 위치 (진행률 값)를 나타내는 <number> 값을 반환하는 수학 함수입니다.

Viewport Segments Enumeration API

Viewport Segments API를 사용하면 개발자가 웹 레이아웃을 폴더블 기기를 타겟팅하도록 조정할 수 있습니다. 표시 영역 세그먼트는 표시 영역의 논리적으로 분리된 영역의 위치와 크기를 정의합니다. 표시 경로 세그먼트는 표시 경로가 구분자 역할을 하는 하나 이상의 하드웨어 기능 (예: 별도의 디스플레이 간의 접힘 또는 힌지)으로 분할될 때 생성됩니다. 세그먼트는 개발자가 논리적으로 구별되는 것으로 취급할 수 있는 표시 경로의 영역입니다.

Web API

WebCodecs에 동영상 프레임 방향 메타데이터 지원 추가

개발자가 방향이 있는 프레임 소스 (예: Android 카메라, 특정 미디어)를 사용할 수 있도록 WebCodecs의 다양한 동영상 관련 인터페이스에 rotation: intflip: bool 값을 도입합니다. VideoFrame 인터페이스는 임의의 회전 및 뒤집기로 VideoFrames를 만드는 기능과 VideoFrame 객체에서 이 정보에 대한 접근자를 확장합니다. VideoDecoderConfig 객체는 디코딩된 VideoFrame 객체에서 자동으로 내보내는 rotationflip 필드를 얻습니다. VideoEncoder 클래스는 EncodedVideoChunkMetadata의 일부로 내보낸 encode()에서 VideoDecoderConfig로 회전 및 뒤집기 정보를 전달하기 위한 메커니즘을 획득합니다. encode()가 방향이 다른 프레임으로 호출되면 비경고 예외가 발생합니다. configure() 메서드는 허용되는 방향을 재설정하는 데 사용할 수 있습니다.

비정상 종료 보고 API: is_top_levelvisibility_state

이 기능은 비정상 종료 보고서의 기본 보고 엔드포인트로 전송되는 비정상 종료 보고 API 본문에 is_top_levelvisibility_state 문자열 필드를 추가합니다.

직렬화 시 속성에서 <> 이스케이프 처리

직렬화 시 속성 값에서 <>를 이스케이프합니다. 이렇게 하면 속성 값이 직렬화되고 다시 파싱된 후 시작 태그 토큰으로 해석될 때 발생하는 변형 XSS 공격의 위험을 완화할 수 있습니다.

스크립트 무결성 정책

하위 리소스 무결성 (SRI)을 사용하면 개발자가 로드하려는 애셋이 실제로 로드되는 애셋인지 확인할 수 있습니다. 하지만 현재 개발자가 모든 스크립트가 SRI를 사용하여 유효성 검사되었는지 확인할 방법은 없습니다. Integrity-Policy 헤더를 사용하면 개발자가 특정 유형의 모든 리소스에 무결성 검사가 필요하다고 어설션할 수 있습니다. 무결성 메타데이터 없이 이러한 유형의 리소스를 로드하려고 하면 시도가 실패하고 위반 보고서가 트리거됩니다.

예측 가능한 보고된 스토리지 할당량

무제한 저장용량 권한이 없는 사이트의 경우 StorageManager의 Estimate API에서 예측 가능한 저장용량 할당량을 보고합니다. 시크릿 모드에서는 사용 가능한 저장공간이 일반 모드보다 훨씬 작으므로 보고된 저장용량 할당량을 사용하여 사용자의 탐색 모드를 감지할 수 있습니다.

이는 스토리지 권한이 제한된 사이트의 모든 탐색 모드에서 사용량 + min(10GiB, 디스크를 가장 가까운 1GiB로 반올림)와 같은 인위적인 할당량을 보고하여 스토리지 API를 사용하는 사용자의 탐색 모드 감지를 방지하는 완화 조치입니다. 저장용량 권한이 무제한인 사이트는 영향을 받지 않습니다. 시행된 할당량도 영향을 받지 않습니다.

정기 결제 재신청 시 pushsubscriptionchange 이벤트

이전에 푸시 구독이 있었지만 권한 변경 (부여됨에서 거부됨/기본값으로)으로 인해 취소된 출처에 알림 권한이 다시 부여되면 서비스 워커에서 pushsubscriptionchange 이벤트를 실행합니다. 이벤트는 비어 있는 oldSubscriptionnewSubscription로 실행됩니다.

추측 규칙: Clear-Site-Data 헤더에 prefetchCacheprerenderCache 추가

개발자가 미리 렌더링 및 미리 가져오기 캐시를 삭제하는 것을 타겟팅하는 데 도움이 되는 Clear-Site-Data 헤더의 두 가지 새 값(prefetchCacheprerenderCache) 이러한 속성은 모든 요청에 전송할 수 있으며 문서 요청에 대해 만들 필요가 없습니다. 예를 들어 장바구니에 추가 또는 로그인 및 로그아웃 API 호출 응답에서 반환하여 상태 변경에 대한 추측을 지울 수 있습니다.

추측 규칙: target_hint 필드

이렇게 하면 개발자가 target_hint 필드를 지정할 수 있도록 추측 규칙 문법이 확장됩니다. 이 필드는 사전 렌더링된 페이지가 최종적으로 활성화될 탐색 가능한 대상을 나타내는 힌트를 제공합니다. _blank가 힌트로 지정되면 window.open()로 열린 탐색 가능한 페이지에 대해 사전 렌더링된 페이지가 활성화될 수 있습니다. 이 필드는 미리 가져오기에 지원되지 않습니다.

Storage Access API의 엄격한 동일 출처 정책

보안과 관련하여 동일 출처 정책을 엄격하게 준수하도록 Storage Access API 시맨틱을 조정합니다. 즉, 프레임에서 document.requestStorageAccess()를 사용하면 기본적으로 사이트가 아닌 iframe의 출처에 대한 요청에만 쿠키가 연결됩니다.

Summarizer API

AI 언어 모델을 기반으로 입력 텍스트의 요약을 생성하는 JavaScript API입니다. 브라우저와 운영체제가 언어 모델에 액세스할 수 있을 것으로 기대되는 경우가 점점 많아지고 있습니다. 이 내장 모델을 노출하면 모든 웹사이트에서 자체 기가바이트급 언어 모델을 다운로드하거나 입력 텍스트를 서드 파티 API로 전송할 필요가 없습니다. 특히 summarizer API는 특정 언어 모델에 종속되지 않는 방식으로 다양한 사용 사례의 입력을 요약하기 위해 언어 모델과 상호작용하는 고급 API를 노출합니다. 엔터프라이즈 정책 (GenAILocalFoundationalModelSettings)을 사용하여 이 API를 사용할 수 없게 만드는 기본 모델 다운로드를 사용 중지할 수 있습니다.

기본 제공 AI로 간결한 요약 생성에서 자세히 알아보세요.

Language Detector API

특정 텍스트에서 사용되는 언어를 신뢰도 수준과 함께 감지하는 JavaScript API입니다. 언어 감지는 번역을 보완하는 중요한 기능으로 Translator API와 함께 사용할 수 있습니다. 예를 들어 알 수 없는 언어로 된 사용자 입력을 받아 언어를 확인한 후 특정 대상 언어로 번역할 수 있습니다. 브라우저에 이미 언어 감지 기능이 있는 경우가 많지만, 이 기능은 JavaScript API를 통해 웹 개발자에게 동일한 기능을 제공하여 번역 API를 보완합니다.

엔터프라이즈 정책 (GenAILocalFoundationalModelSettings)을 사용하면 기본 모델의 다운로드를 사용 중지할 수 있으며, 이 경우 이 API를 사용할 수 없게 됩니다.

기본 제공 AI에서 사용되는 언어 감지에서 자세히 알아보세요.

Translator API

웹페이지에 언어 번역 기능을 제공하는 JavaScript API입니다. 브라우저에서 사용자에게 언어 번역을 제공하는 경우가 점점 늘어나고 있지만 이러한 번역 기능은 웹 개발자에게도 유용할 수 있습니다. 이는 특히 실시간 및 양방향 서비스와 같이 브라우저의 기본 제공 번역 기능을 사용할 수 없는 경우에 해당합니다. 엔터프라이즈 정책(GenAILocalFoundationalModelSettings)을 사용하여 이 API를 사용할 수 없게 만드는 기본 모델 다운로드를 사용 중지할 수 있습니다.

기본 제공 AI를 사용한 번역에서 자세히 알아보세요.

웹 앱 범위 확장

웹 앱이 범위를 다른 출처로 확장할 수 있는 "scope_extensions" 웹 앱 매니페스트 필드를 추가합니다. 이렇게 하면 여러 하위 도메인과 최상위 도메인을 제어하는 사이트를 단일 웹 앱으로 표시할 수 있습니다. 나열된 출처가 .well-known/web-app-origin-association 구성 파일을 사용하여 웹 앱과의 연결을 확인해야 합니다.

Android의 블루투스를 통한 웹 시리얼

이 기능을 사용하면 웹페이지와 웹 앱이 Android 기기에서 블루투스를 통해 직렬 포트에 연결할 수 있습니다. 이제 Android용 Chrome에서 블루투스 RFCOMM을 통한 웹 시리얼 API를 지원합니다. 다른 플랫폼의 기존 엔터프라이즈 정책(DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls, SerialBlockedForUrls)은 Android의 future_on 상태에서 사용 설정됩니다. 기능이 사용 설정된 후 SerialAllowUsbDevicesForUrls를 제외한 모든 정책이 사용 설정됩니다. SerialAllowUsbDevicesForUrls는 Android에서 유선 직렬 포트에 대한 시스템 수준 지원을 제공한 후 향후 출시에서 사용 설정됩니다.

지원 중단 및 삭제

이 버전의 Chrome에서는 다음과 같은 지원 중단 및 삭제가 적용됩니다. ChromeStatus.com에서 예정된 지원 중단, 현재 지원 중단, 이전 삭제 목록을 확인하세요.

이 Chrome 버전에서는 두 가지 기능이 지원 중단됩니다.

미디어 소스 확장 프로그램의 비동기 범위 삭제 지원 중단

미디어 소스 표준은 오래 전에 비동기 범위 삭제와 관련하여 모호하게 정의된 동작을 허용하지 않도록 변경되었습니다.

  • SourceBuffer.abort()가 더 이상 SourceBuffer.remove() 작업을 중단하지 않습니다.
  • MediaSource.duration 설정으로 더 이상 현재 버퍼링된 미디어를 자르지 못합니다.

이제 두 경우 모두 예외가 발생합니다.

SwiftShader 대체 삭제

소프트웨어 렌더기 SwiftShader에서 지원하는 WebGL로의 자동 대체를 허용하는 기능은 지원 중단되었으며 SwiftShader로 대체되는 대신 WebGL 컨텍스트 생성이 실패합니다. 이는 다음 두 가지 주요 이유로 인한 조치입니다.

  1. SwiftShader는 Chromium의 GPU 프로세스에서 실행되는 JIT 코드로 인해 보안 위험이 높습니다.
  2. 고성능 GPU 지원 WebGL에서 CPU 지원 구현으로 대체할 때 사용자 환경이 저하됩니다. 사용자는 이 동작을 제어할 수 없으며 버그 신고에서 설명하기도 어렵습니다.

지원 중단 기간에는 WebGL 컨텍스트가 생성되고 SwiftShader로 지원될 때 Chrome DevTools 콘솔에 경고가 표시됩니다. --enable-unsafe-swiftshader를 전달하면 이 경고 메시지가 삭제됩니다.